package day4Exer;

import java.util.ArrayList;
import java.util.Scanner;

/*
* 新建一个学生管理系统，类中有姓名，学号(int 类型)，年龄等属性。初始化几名同学的信息放到集合。

系统中指令可重复输入，直至用户退出系统

功能 1：新增同学的信息

功能 2： 更新所有同学的年龄信息

功能 3 ：展示所有同学信息

功能 4：输入一个学生学号，展示当前学号的学生所有的信息

功能 5: 退出
*
*
* */
public class Demo {

    public static void main(String[] args) {
        //创建集合，接收学生对象
        ArrayList<Student> list = new ArrayList<>();

        //创建一个学生对象
        Student stu1 = new Student();

        //对学生对象属性赋值
        stu1.name = "张三";
        stu1.age = 18;
        stu1.number = 1001;

        Student stu2 = new Student();

        stu2.name = "翠花";
        stu2.age = 20;
        stu2.number = 1002;

        //将学生对象放入的集合中
        list.add(stu1);
        list.add(stu2);

        //创建Scanner对象,接收输入的信息
        Scanner sc = new Scanner(System.in);

        System.out.println("-------学生管理系统---------");
        System.out.println("欢迎进入学生管理系统");

        while(true){
            System.out.println("请输入相关指令 \n指令 1:新增同学信息，指令 2:更新所有同学年龄，指令 3:展示所有同学的信息，\n"
                    +"指令 4:输入学号匹配学生信息，指令 5:退出");

            int num = sc.nextInt();

            switch (num){
                case 1:
                    addStudent(list);
                    break;
                case 2:
                    updateStudentAge(list);
                    break;
                case 3:
                    showStudentInfo(list);
                    break;
                case 4:
                    searchSingleStudentInfo(list);
                    break;
                case 5:
                    System.out.println("您已退出学生管理系统,欢迎下次使用");
                    System.out.println("-------学生管理系统---------");
                    return;
                default:
                    System.out.println("您输入的指令有误,请输入指令 1-5");
            }
        }





    }

    //新增同学信息
    public static void addStudent(ArrayList<Student> list){
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);

        //创建学生对象
        Student stu1 = new Student();

        System.out.println("请输入一位同学的名称");

//        String name =  sc.next();
//        stu1.name = name;
        stu1.name = sc.next();

        System.out.println("请输入一位同学的学号");

        stu1.number = sc.nextInt();

        System.out.println("请输入一位同学的年龄");

        stu1.age = sc.nextInt();

        //将对象放入集合中
        list.add(stu1);

        System.out.println("学生信息添加完成");
    }

    //更新所有同学的年龄
    public static void updateStudentAge(ArrayList<Student> list){
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < list.size(); i++) {
            System.out.println("请输入第"+(i+1)+"位同学的年龄");

            int age = sc.nextInt();

            //给集合中的Student对象的属性赋值
            list.get(i).age = age;
//            Student stu = list.get(i);
//            stu.age = age;
//            list.set(i,stu);
        }

        System.out.println("学生年龄修改完成");

    }

    //展示所有同学的信息
    public static void showStudentInfo(ArrayList<Student> list){

        for (int i = 0; i < list.size(); i++) {
            System.out.println("第"+(i+1)+"位同学的名称:"+list.get(i).name+
                    ",学号:"+list.get(i).number+",年龄:"+list.get(i).age);

        }
    }

    //展示与输入的学号相匹配的学生信息
    public static void searchSingleStudentInfo(ArrayList<Student> list){

        //创建Scanner对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个学号");
        int number = sc.nextInt();

        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).number == number){
                System.out.println("匹配的同学的名称:"+list.get(i).name+
                        ",学号:"+list.get(i).number+",年龄:"+list.get(i).age);

                break;
            }
            //如果for循环已经是最后一次循环，仍然没有相匹配的
            if(i==list.size()-1){
                System.out.println("输入的学号有误，请check check 您输入的学号");
            }
        }

    }


}
